﻿
//using System.Collections.Generic;

//namespace MathService.DSP.Signals.Noice
//{
//    public class Histogram : DigitalSignal, IEnumerable<KeyValuePair<Interval, double>>
//    {
//        private readonly Interval f_Interval;

//        public Histogram(Interval Y_Interval, int N)
//            : base(Y_Interval.Length / N, Y_Interval.Min, N)
//        {
//            f_Interval = Y_Interval;
//        }

//        public void AddValue(double Value) { if(f_Interval.Check(Value)) this[Value]++; }

//        public new void AddValue(params double[] Values) { for(var i = 0; i < Values.Length; i++) AddValue(Values[i]); }

//        public void AddSignal(DigitalSignal s) { AddValue(s.Samples); }

//        public void Initialize() { for(var i = 0; i < SamplesCount; i++) this[i] = 0; }

//        public override void Normalize()
//        {
//            double P = 0;
//            for(var i = 0; i < SamplesCount; i++) P += this[i];
//            for(var i = 0; i < SamplesCount; i++) this[i] /= P;
//        }

//        /// <summary>Возвращает перечислитель, выполняющий перебор элементов в коллекции.</summary>
//        /// <returns>
//        /// Интерфейс <see cref="T:System.Collections.Generic.IEnumerator`1"/>, который может использоваться для перебора элементов коллекции.
//        /// </returns>
//        /// <filterpriority>1</filterpriority>
//        public new IEnumerator<KeyValuePair<Interval, double>> GetEnumerator()
//        {
//            var N = SamplesCount;
//            var items = new List<KeyValuePair<Interval, double>>(N);
//            for(var i = 0; i < N; i++)
//            {
//                items.Add(new KeyValuePair<Interval, double>(new Interval(), ));
//            }
//        }
//    }
//}
